# -*- coding: utf-8 -*-
# @Time    : 2019/9/24 11:04
# @Author  : Weymouth
# @Email   : 261229090@qq.com
# @File    : 3menu.py
# @Software: PyCharm
# ---------------------------------------------------

menu = {
    '北京': {
        '朝阳': {
            '国贸': {
                'abc': {}
            },
            '望京': {
                '360': {},
                '奔驰': {}
            }
        }
    }
}

#parent_layer = menu
current_layer = menu    #实现动态循环
parent_layers = []  #保存所有父级，最后一个元素永远都是父级
while True:
    for key in current_layer:
        print(key)
    choice = input(">>:").strip()
    if len(choice) == 0:continue
    if choice in current_layer:
        #parent_layer = current_layer    #改之前相当于父层
        parent_layers.append(current_layer) #在进入下一层之前，把当前层（也就是下一层父级）追加到列表中
        #下一次loop，当用户选择b的选择，就可以直接取列表的最后一个值出来就ok了
        current_layer = current_layer[choice]   #改成了子层
    elif choice == "b":
        #current_layer = parent_layer    #把子层改变成父层
        if parent_layers:
            current_layer = parent_layers.pop() #取出列表的最后一个值，因为它就是当前层的父级
    else:
        print("无此项")